package com.fly.common.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @description md5加密
 * @author: fly
 * @date: 2018/11/27 15:35
 */
public class MD5Util {
    private MD5Util() {
    }

    /**
     * MD5密码加密一次
     *
     * @param password 明文密码
     * @return MD5加密一次
     */
    public static String encryptPasswordOnce(String password) {
        try {
            // 得到一个信息摘要器  
            MessageDigest digest = MessageDigest.getInstance("md5");
            byte[] result = digest.digest(password.getBytes());
            StringBuffer buffer = new StringBuffer();
            // 把没一个byte 做一个与运算 0xff;  
            for (byte b : result) {
                // 与运算  // 加盐
                int number = b & 0xff;
                String str = Integer.toHexString(number);
                if (str.length() == 1) {
                    buffer.append("0");
                }
                buffer.append(str);
            }
            // 标准的md5加密后的结果
            return buffer.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return "";
        }
    }

    /**
     * MD5加密密码两次
     *
     * @param password 密码明文
     * @return MD5加密两次
     */
    public static String encryptPasswordTwice(String password) {
        return encryptPasswordOnce(encryptPasswordOnce(password));
    }
}
